<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    
  </style>
</head>
<body>
  
</body>
<script>

  // Object.defineProperty(对象, 属性名, 配置项)
  // 一次执行只能劫持一个属性

  // for(let i in origin){
  //   Object.defineProperty(对象, i, 配置项)
  // }



  // Object.defineProperties(对象, 配置项组)

  // const origin = {
  //   name:"admin",
  //   age:18
  // }
  
  // const obj = {}
  // Object.defineProperties(obj, {
  //   name: {
  //     get(){
  //       return origin.name
  //     },
  //     set(val){
  //       origin.name = val
  //     }
  //   },
  //   age:{
  //     get(){
  //       return origin.age
  //     },
  //     set(val){
  //       origin.age = val
  //     }
  //   }
  // })

  // console.log(obj);


  // =========


  const origin = {
    name:"admin",
    age:19,
    sex:"男",
    abc:123,
    qwe:"hello",
    zxc:"heiheieei"
  }

  const result = {};
  const ops = {}
  for(let i in origin){
    ops[i] = {
      get(){
        console.log("正在访问"+ i +"属性")
        return origin[i];
      },
      set(val){
        console.log("正在修改"+ i +"属性为" + val)
        origin[i] = val;
      }
    }
  }
  Object.defineProperties( result, ops )

  console.log( result );

</script>
</html>